﻿using SistemaGPS.Domino;
using SistemaGPS.Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace SistemaGPS
{
    public class Modelos : IModelos
    {
        private ModeloDAO modeloDAO = null;
        private ModeloDAO ModeloDAO
        {
            get
            {
                if (modeloDAO == null)
                    modeloDAO = new ModeloDAO();
                return modeloDAO;
            }
        }
        private MarcaDAO marcaDAO = null;
        private MarcaDAO MarcaDAO
        {
            get
            {
                if (marcaDAO == null)
                    marcaDAO = new MarcaDAO();
                return marcaDAO;
            }
        }

        public Modelo CrearModelo(string nombre, int marca, string foto)
        {
            Marca marcaExistente = MarcaDAO.Obtener(marca);

            Modelo modeloACrear = new Modelo()
            {
                Nombre = nombre,
                Marca = marcaExistente,
                Foto = foto
            };
            return ModeloDAO.Crear(modeloACrear);
        }

        public Modelo ObtenerModelo(int codigo)
        {
            return ModeloDAO.Obtener(codigo);
        }

        public Modelo ModificarModelo(int codigo, string nombre, int marca, string foto)
        {
            Marca marcaExistente = MarcaDAO.Obtener(marca);

            Modelo modeloAModificar = new Modelo()
            {
                Codigo = codigo,
                Nombre = nombre,
                Marca = marcaExistente,
                Foto = foto
            };
            return ModeloDAO.Modificar(modeloAModificar);
        }

        public void EliminarModelo(int codigo)
        {
            Modelo modeloExistente = ModeloDAO.Obtener(codigo);
            ModeloDAO.Eliminar(modeloExistente);

        }

        public List<Modelo> ListarModelos()
        {
            return ModeloDAO.ListarTodos().ToList();
        }
    }
}
